1. Field of the Invention
The invention relates to wireless communication, and more particularly to a turbo code decoding method.
2. Description of the Related Art
Wideband wireless communications infrastructure and applications have been widely developed in recent years. One such example is the WiMAX system. The WiMAX standard adopt the convolutional turbo code (CTC) as one of Forward Error Correction (FEC) mechanisms. CTC provides high performance for telecommunications, and there have been various CTC related enhancements and developments proposed as prior arts. FIG. 1 shows a conventional turbo code decoder 100, essentially comprising a pair of decoding units 110 and 120. The decoding unit 120 receives a transmission signal #IN and a decoding result from the decoding unit 110 via an extrinsic information interleaver 102 and a data interleaver 104 to perform a recursive calculation. Symmetrically, through a deinterleaver 106, the decoding unit 120 feeds back a decoding result to the decoding unit 110, such that the decoding unit 110 performs a recursive calculation based on the decoding result and the transmission signal #IN. The transmission signal #IN is typically provided by a transmitter, and contains various channel effect and noise interferences. The recursive calculation processed in the decoding unit 110 and 120 may be one of various algorithms, such as a log-maximum a posterior (Log-MAP) algorithm, a Maximum Log-MAP algorithm or an Enhanced Maximum Log-MAP algorithm. The algorithms are also referred to as Soft-in-Soft-out (SISO) decoding algorithms.
FIG. 2a shows a binary trellis structure of conventional state metrics. The horizontal axis t represents time or stage, and the vertical axis represents multiple states within each stage. As an example, state S1 and S2 corresponding to stages ti-1 and ti are shown in FIG. 2a. Generally, three parameters are required for the SISO decoding algorithms, the forward probability α, backward probability β and branch probability γ for each state. Taking the state S1 at stage ti-1 for example, the parameters are referred to as α1(ti-1) and β1(ti-1). The state S1 at stage ti-1 may be switched to state S1 or S2 at stage ti, so that there are two branches each having a probability (or weighting factor) derivable from the received signals, denoted as γ(S1,S1) and γ(S1,S2). Identically, for the state S2 at stage ti-1, corresponding parameters comprise α2(ti-1), β2(ti-1), γ(S2,S1) and γ(S2,S2). According to MAP algorithm, the forward probability α of the state S1 at stage ti is obtained from the forward probabilities α and branch probabilities γ of the previous stage ti-1, and the backward probability β of stage S1 at stage ti-1 is obtained from the backward probabilities β and branch probabilities γ at the next stage ti. Detailed introductions for the algorithms are available in public journals, thus further description is omitted herein. To process the algorithms, in the decoding units 110 and 120, however, significant memory space is required to buffer all the parameters related to a state metric. For example, each parameter may be a 10-bit float value, and if there are N states at each stage, and the state metric is a single binary trellis structure, there would be 2N branches to be managed. In other words, the memory requirement increases exponentially with the number of stages N.
FIG. 2b shows a conventional Add-Compare-Selection (ACS) circuit adapted in the decoding units 110 and 120 of FIG. 1, used for recursively calculating the probabilities α and β for each state. As an example, if the forward probability α1(ti) of state S1 at stage ti is to be calculated, all the associated states of a previous stage and branches therefrom would be considered. In this case, probabilities α1(ti-1) and α2(ti-1) are considered. First, the adder 202 adds the forward probability α1(ti-1) to the branch probability γ(S1,S2), and the adder 204 adds the forward probability α2(ti-1) to the branch probability γ(S1,S2). Thereafter, the added results are sent to the selector 210 for comparison, among which the larger value is output to the adder 206 to be added with a value from the lookup table 220 so that the forward probability α1(ti) is generated. The lookup table 220 is a table comprising fixed values, providing logarithm corrections for the values output from the adders 202 and 204. Since the lookup table 220 is a prior art, a detailed description is omitted herein.
According to the aforementioned approaches, the probabilities α and β of each state are calculated by the ACS circuit 200, so that the ACS circuit 200 and the memory device are recursively used. The total of parameters α and β therefore establish a state metric in the memory device, and when the state metric is established, a Log Likelihood Ratio (LLR) calculation is processed in the decoding units 110 and 120 to calculate a decoding result which has a maximum probability.